Skip to content

A heist area is a pool like a map's, so map check reads one - #43

Merged
JIRPOS merged 1 commit into
masterfrom
heist-areas-are-a-pool-map-check-reads
Aug 13, 2026
Merged

A heist area is a pool like a map's, so map check reads one#43
JIRPOS merged 1 commit into
masterfrom
heist-areas-are-a-pool-map-check-reads

Conversation

@JIRPOS

@JIRPOS JIRPOS commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Release notes

ADDED: Map check works on heist contracts and blueprints. The hotkey opens on one, rates its
modifiers as it rates a map's, and remembers them in the same profile — so a modifier you have
already decided about on a map is decided about here too where the game words it the same way.

ADDED: A heist item's own numbers in the popup: the client, the target and its value, the area
level, quantity and rarity, alert level reduction, time before lockdown and maximum alive
reinforcements. The job levels it demands are folded onto one line rather than one sentence
apiece, and a requirement your character cannot meet still says so.

CHANGED: The verdict banner no longer calls everything a map, since it now sits over contracts
and charts as well.

Review notes

ADDED: Domain 22 HEIST_AREA to mapcheck::kDomains, so the map-check hotkey opens on a
contract or a blueprint and rates its affixes against the profile in use.

  • The claim that everything above kDomains was written per domain rather than per map is now
    tested rather than asserted: the store, the profiles, the popup's rows, the settings pool
    browser and the search-string import took no change at all. What it cost was one entry in that
    list and one is_heist() line in the fallback that reads the item when the bundle cannot.
  • Every heist affix also grants #% more raising of Alert Level and #% increased time before Lockdown, which no contract prints — the client sums them into two properties instead. So the
    pool_refs_for expansion is the ordinary case here rather than the exception: 88 of the pool's
    90 entries need it. Pinned to a capture whose six affixes carry -7/-6/-6/-5/-6/-4 and which
    prints Alert Level Reduction: +34%.
  • The pool itself is upstream and is already on main there
    (JIRPOS/PathOfPriceCheck-Data@98c4b1d): POOL_GENERATIONS gains 22: (1, 2), 299 rows to 90
    wording-set entries, taking the published pool from 897/270 to 1196/360. Until a data build
    publishes it the gate here still opens — see the note on is_rateable_item for what that costs.

ADDED: The job requirements to the popup's numbers block, folded into one pair — Requires: Brute Force 5, Demolition 5, …, with any (unmet) the client annotated kept.

  • They were drawn by nothing before: the parser keeps that line whole and label-less, and the
    block skips a property with no label. Six of them written out as the game writes them are the
    longest thing on the panel, and a fully revealed blueprint has six.

CHANGED: is_map_device_item is is_rateable_item, and asks whether the item rolls from a
domain in kDomains. A contract goes to Adiyah rather than into the map device, so the old name
had become a wrong statement about its own gate.

  • It passes an item whose pool the bundle does not carry, deliberately, and the doc comment now
    says what that costs: pool_refs_for cannot expand, so a verdict lands on the printed wording
    alone rather than on the affix's whole set, and those two keys are not each other. A rating made
    on a bundle predating a domain's pool reads as unrated once that pool arrives — never as a wrong
    verdict.

CHANGED: A property value is wrapped at the panel edge instead of clipped. The block was written
for pairs that were always a number and always fitted; the folded job list is wider than the
panel.

CHANGED: The outlook banner names nothing — "You can run this safely" rather than "this map",
since the same sentence now sits over a contract and a chart.

ADDED: A contract capture with Advanced Mod Descriptions on, four pool entries and two stats to
the bundle slice, and tests for the gate, the expansion, and a wording a map's pool and a
contract's both grant folding into one row.

CHANGED: map-check.md gains the heist pool's numbers and says why 58 of its 90 entries word a
modifier as a map does and still do not fold; roadmap.md closes Crucible maps (legacy content,
one line of work, no items left) and delve areas (no base item behind the domain) so neither is
proposed again.

CHANGED: map-check.md said domain 14 MAP_DEVICE holds invitation implicits. It holds the fixed
implicit each map fragment carries — 274 rows, all generation 3, not one of them an invitation,
which are domain 5 as the table below it already said.

Not touched, and outside this change: the fallback in map_domain_of still claims domain 5 for a
map fragment whose bases are domain 14, and the feature is still called "Map check" in the title,
the hotkey label and the config.

🤖 Generated with Claude Code

ADDED: Domain 22 `HEIST_AREA` to `mapcheck::kDomains`, so the map-check hotkey opens on a
contract or a blueprint and rates its affixes against the profile in use.

- The claim that everything above `kDomains` was written per domain rather than per map is now
  tested rather than asserted: the store, the profiles, the popup's rows, the settings pool
  browser and the search-string import took no change at all. What it cost was one entry in that
  list and one `is_heist()` line in the fallback that reads the item when the bundle cannot.
- Every heist affix also grants `#% more raising of Alert Level` and `#% increased time before
  Lockdown`, which no contract prints — the client sums them into two properties instead. So the
  `pool_refs_for` expansion is the ordinary case here rather than the exception: 88 of the pool's
  90 entries need it. Pinned to a capture whose six affixes carry -7/-6/-6/-5/-6/-4 and which
  prints `Alert Level Reduction: +34%`.

ADDED: The job requirements to the popup's numbers block, folded into one pair — `Requires:
Brute Force 5, Demolition 5, …`, with any `(unmet)` the client annotated kept.

- They were drawn by nothing before: the parser keeps that line whole and label-less, and the
  block skips a property with no label. Six of them written out as the game writes them are the
  longest thing on the panel, and a fully revealed blueprint has six.

CHANGED: `is_map_device_item` is `is_rateable_item`, and asks whether the item rolls from a
domain in `kDomains`. A contract goes to Adiyah rather than into the map device, so the old name
had become a wrong statement about its own gate.

CHANGED: A property value is wrapped at the panel edge instead of clipped. The block was written
for pairs that were always a number and always fitted; the folded job list is wider than the
panel.

CHANGED: The outlook banner names nothing — "You can run this safely" rather than "this map",
since the same sentence now sits over a contract and a chart.

ADDED: A contract capture with Advanced Mod Descriptions on, four pool entries and two stats to
the bundle slice, and tests for the gate, the expansion, and a wording a map's pool and a
contract's both grant folding into one row.

CHANGED: map-check.md gains the heist pool's numbers and says why 58 of its 90 entries word a
modifier as a map does and still do not fold; roadmap.md closes Crucible maps (legacy content,
one line of work, no items left) and delve areas (no base item behind the domain) so neither is
proposed again.

CHANGED: map-check.md said domain 14 `MAP_DEVICE` holds invitation implicits. It holds the fixed
implicit each map *fragment* carries — 274 rows, all generation 3, not one of them an invitation,
which are domain 5 as the table below it already said.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JIRPOS
JIRPOS merged commit c18f89d into master Aug 13, 2026
9 checks passed
@JIRPOS
JIRPOS deleted the heist-areas-are-a-pool-map-check-reads branch August 13, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant